# ————————————————————  9.3.1	类属性  ————————————————————
# class Car:
#     wheels = 4  										# 属性
#     def drive(self):  									# 方法
#         print('行驶')

# car = Car()
# print(Car.wheels)                      # 通过类访问类属性
# print(car.wheels)                      # 通过对象访问类属性

# car = Car()
# Car.wheels = 5                         # 通过类修改类属性
# print(Car.wheels)
# print(car.wheels)
# car.wheels = 6                         # 通过对象修改类属性
# print(Car.wheels)
# print(car.wheels)


# ————————————————————  9.3.2	实例属性  ————————————————————
# class Car:
#     def drive(self):
#         self.wheels = 4                     # 定义实例属性
# car = Car()
# car.drive()
# print(car.wheels)                           # 通过对象访问实例属性
# print(Car.wheels)                           # 通过类访问实例属性

# class Car:
#     def drive(self):
#         self.wheels = 4                    # 定义实例属性
# car = Car()
# car.drive()
# print(car.wheels)
# car.wheels = 6                             # 通过对象修改实例属性
# print(car.wheels)

# class Car:
#     def drive(self):
#         self.wheels = 4                    # 定义实例属性
# car = Car()
# car.drive()
# car.color = "红色"                         # 通过对象动态添加实例属性
# print(car.color)                           # 通过对象访问实例属性
# car_two = Car()
# print(car_two.color)                      # 通过另一个对象访问实例属性


# ————————————————————  9.3.3	私有属性  ————————————————————
class Car:
    __color = "红色"                   # 定义私有类属性
    def drive(self):
        self.__wheels = 4             # 定义私有实例属性
    def describe_info(self):
        print(self.__color)           # 在类内部访问私有类属性
        print(self.__wheels)          # 在类内部访问私有实例属性
car = Car()
car.drive()
# print(car.__color)                    # 在类外部直接访问私有类属性
# print(car.__wheels)                   # 在类外部直接访问私有实例属性
car.describe_info()